package num18;

/**
 * @author : DuJiabao
 * @Date : 2021/1/24 0:10
 * @Project : sword-finger-offer
 * @File : null.java
 * @Desc :  和方法一基本相似。只是将特殊情况提前处理。通过提前next预判值的方式，不需要保存前一个结点
 */
public class Solution2 {
    public ListNode deleteNode(ListNode head, int val) {
        if (head == null) return null;
        if (head.val == val) return head.next;

        ListNode point = head;
        while (point.next != null && point.next.val != val) {
            point = point.next;
        }
        point.next = point.next.next;
        return head;
    }
}
